#ifndef KEYBOARDHOOK_INTERFACE_H_
#define KEYBOARDHOOK_INTERFACE_H_

#if _MSC_VER > 1000
#pragma once
#endif

typedef struct tagKeyBoardMsg
{
	TCHAR szBuffer[MAX_PATH];
	DWORD processId;
	DWORD threadId;
	WORD vkCode;
}KeyBoardMsg;

class __declspec(uuid("A604B05E-9D11-4dc9-9D62-15DCF46A866F"))
IKeyBoardHook : public IUnknown
{
public:
	virtual HRESULT STDMETHODCALLTYPE InstallHook(HWND hWnd) = 0;
	virtual HRESULT STDMETHODCALLTYPE UninstallHook() = 0;
};

#define FN_CreateKeyBoardHook			"CreateKeyBoardHook"
typedef HRESULT (WINAPI *PFN_CreateKeyBoardHook)( REFIID riid, void** ppvObj );

#endif	//KEYBOARDHOOK_INTERFACE_H_